/* 系统信息事件 */
export default {
	data() {
		return {
			// (全屏后，宽度需要减去状态栏高度,面板控件才是等比居中的，不然的话，状态栏的距离实际上是溢出的，控件看起来就不是很居中)
			StatusBarHeight:0,//状态栏高度
			
			FullscreenWidth:0,//全屏后的宽度 = (手机高度)
			FullscreenHeight:0,//全屏后的高度= (手机宽度)
			
			
			windowWidth:0,//可使用窗口宽度
			windowHeight:0,//可使用窗口高度（全屏后的宽度，2021-1219改用此属性，废弃使用screenHeight）
			
			
			// 这里的宽高度，后续改成获取用户自己设置的
			//TouchFullWidth:'750rpx',//调节面板的宽度
			//TouchFullHeight:'480rpx',//调节面板的高度
			
			// [新版-已支持自定义播放器宽高度,面板需要和播放器宽高度一直]
			TouchFullWidth: this.VideoWidth+'rpx',//调节面板的宽度
			TouchFullHeight: this.VideoHeigth+'rpx',//调节面板的高度
			// 全屏时进度条宽度(用于全屏控制面板下g-b-t-conter-box)
			FullSliderWidth:0,
			
			// 当视频进入和退出全屏时触发，
			isFullScreenChange:false,// 监听进入和退出全屏状态
			
			// 客户端平台
			platform_mobile:''//android,ios,mac,windows,linux
		}
	},
	watch:{
		// 这里是用来监听不到第一次变化（比如切换选集，会重绘，然后这个里面不监听第一次的变化）
		isFullScreenChange:{
			handler(newChange,oldChange){
				//console.log("全屏状态为 = "+newChange)
				if (newChange == true){
					// 当视频进入全屏时触发，修改宽高度
					this.getFunllWidhtHeight()
				}else if (newChange == false) {
					// 当视频退出全屏时触发，修改宽高度
					this.getNoFunllWidhtHeight()
				}
				// 将是否全屏状态回调出去
				this.getIsFullMyVideoChange(newChange)
			},
			immediate: true,//普通监听（可监听到第一次绑定的变化）
		},
		show: {
			handler(newShow,oldShow){
				// 进入全屏后会自动隐藏控制面板，此时获取窗口宽度作为控制面板宽度，替换掉之前的屏幕高度作为全屏后的宽度。不替换的话，在不同机型上会有不精准的问题
				if (newShow==false&&this.isFullScreenChange==true){
					// #ifdef APP-PLUS
					console.log('是否开启了游戏全屏模式 === ',this.Config.goFull_GameModeFull)
					
					// 3.5.1 版本新增 2022-0313
					// 开发者关闭了 -> 是否开启video进入全屏时启用游戏模式的全屏
					if (this.Config.goFull_GameModeFull == false) return false

					// [最新版] 2021-1219 调整代码，修复部分手机全屏后控制面板背景阴影不是撑满的bug
					
					// 设置应用是否全屏显示 ? 设置应用在全屏模式显示时，将隐藏系统状态栏，通常游戏类应用才会设置为全屏模式显示。
					plus.navigator.setFullscreen(true);//https://www.html5plus.org/doc/zh_cn/navigator.html
					// 2. 获取是否全屏模式，上面设置后，才能获取到是类似游戏模式的全屏模式，是正在意义上的全屏，直接干掉状态栏的站位空间
					let isFullScreen = plus.navigator.isFullscreen();
					// 3. 判断应用当前是否全屏模式显示 ? 前面设置过了，这里才判断的是正确的，否则不设置进入全屏后还是会false，就是说不是类似游戏模式的全屏模式
					if (isFullScreen==true) {
						console.log('已设置为游戏类应用的全屏模式，已干掉安卓的状态栏站位高度')
					}
					//console.log('判断应用当前是否全屏模式显示')
					//console.log(isFullScreen)
					
					//屏幕方向数值： 0 - 竖屏； 90 - 横屏，HOME键在右； 180 - 反向竖屏； -90 - 反向横屏，HOME'键在左
				    let orit = plus.navigator.getOrientation();
					//console.log('orit == ' + orit)
				    if ((orit==0)||(orit==180)){
						//竖屏做的操作
				    }else {
						//横屏做的操作
				    }
					// ————————————————
					// 原文链接：https://blog.csdn.net/Hello_World_CFF/article/details/117364477
					
					// #endif
				}
			}
		},
		// 播放器宽度
		VideoWidth:{
			handler(newVideoWidth,oldVideoWidth){
				// 设置播放器宽度
				this.getVideoWidth(newVideoWidth)
			},
			immediate: true,
		},
		// 播放器高度
		VideoHeigth:{
			handler(newVideoHeigth,VideoHeigth){
				// 设置播放器高度
				this.getVideoHeigth(newVideoHeigth)
			},
			immediate: true,
		},
	},
	created(){
		// 状态栏宽度
		this.StatusBarHeight = uni.getSystemInfoSync().statusBarHeight
		//console.log('状态栏宽度 == ' + this.StatusBarHeight)
		
		// 客户端平台
		this.platform_mobile = uni.getSystemInfoSync().platform
		console.log("客户端平台 = " +this.platform_mobile)
		
		// 全屏宽度 = 手机高度
		this.FullscreenWidth = uni.getSystemInfoSync().screenHeight
		// 全屏高度 = 手机宽度
		this.FullscreenHeight = uni.getSystemInfoSync().screenWidth
		//console.log("全屏宽度 = "+this.FullscreenWidth)
		
		console.log('全屏宽度 == ' + this.FullscreenWidth)
		console.log('全屏高度 == ' + this.FullscreenHeight)
	},
	methods:{
		// 当视频进入全屏时触发，修改宽高度
		getFunllWidhtHeight(){
			// [最新版] 2021-1219 
			// 1. 先使用'全屏高度'作为全屏后的宽度，2.监听进入全屏后再设置应用是否全屏显示，地址：https://www.html5plus.org/doc/zh_cn/navigator.html
			this.TouchFullWidth = Number(this.FullscreenWidth)+'px'
			this.TouchFullHeight = this.FullscreenHeight+'px'
			this.FullSliderWidth = this.FullscreenWidth
			// 2. 此方法在show监听里执行
			
			// [老版本 2021-1218] 的问题如下
			/* 使用了定时器执行上面的第二步，但是每个手机进入全屏的反应能力不一样
			 * 测试即使延时1000毫秒(1s),可能也获取到的只是竖屏的宽度，会存在问题
			 */
		},
		// 当视频退出全屏时触发，修改宽高度
		getNoFunllWidhtHeight(){
			// 新版 2021-1118-1351 更新
			this.getVideoWidth(this.VideoWidth)
			this.getVideoHeigth(this.VideoHeigth)

			/* 旧版
			this.TouchFullWidth = this.VideoWidth+'rpx'
			this.TouchFullHeight = this.VideoHeigth+'rpx'
			 */
		},
		// 设置播放器宽度
		getVideoWidth(VideoWidth){
			if (typeof VideoWidth=='string'){
				// 如果是String类型，请设置单位
				this.TouchFullWidth = VideoWidth
			}else {
				// 如果是Number类型，不用设置单位，内置默认rpx
				this.TouchFullWidth = VideoWidth+'rpx'
			}
			//console.log('------播放器宽度 类型------------')
			//console.log(typeof VideoWidth)
		},
		// 设置播放器高度
		getVideoHeigth(VideoHeigth){
			if (typeof VideoHeigth=='string'){
				// 如果是String类型，请设置单位
				this.TouchFullHeight = VideoHeigth
			}else {
				// 如果是Number类型，不用设置单位，内置默认rpx
				this.TouchFullHeight = VideoHeigth+'rpx'
			}
		},
		/* 此版本目前已经不需要此处事件，后期再看能不能用上 */
		// @1. 当视频进入全屏或退出全屏时触发
		// @2. 如果show=false，就执行动画显示控制面板
		isFunllShow(){
			if (this.show==false){
				// 执行动画并隐藏控制面板
				this.isShowCommFullScreen()
			}
		},
		// 将是否全屏状态回调出去
		getIsFullMyVideoChange(isFull){
			// 判断是否全屏状态，并修改提示内容
			let msg = isFull==true ? '已是进入全屏状态':'已是退出全屏状态'
			let e = {
				Events: 'isFullChange',//标记>>点击了“投屏”按钮
				isFull,//是否全屏状态
				msg,//提示内容
			}
			this.$emit('changeMyVideo',e)
		}
	}
}